package br.com.tcc.systemdx.domain.enumtypes;

import java.text.ParseException;

public enum ProbabilidadeSimbolica {
	NUNCA,
	BAIXA,
	MEDIA,
	ALTA,
	SEMPRE;
	
	private static final String[] LABELS = {"Nunca", 
											"Probabilidade Baixa",
											"Probabilidade Média",
											"Probabilidade Alta",
											"Sempre"};
	@Override
	public String toString() {
		return LABELS[this.ordinal()];
	}
	
	/**
	 * Retorna a probabilidade simbólica de acordo com a label
	 * passada por parâmetro
	 * @param label
	 * @return probabilidade simbólica correspondente a label
	 * @throws ParseException
	 */
	public static ProbabilidadeSimbolica parse(String label) throws ParseException {
		for (ProbabilidadeSimbolica p : ProbabilidadeSimbolica.values()) {
			if (p.toString().equalsIgnoreCase(label))
				return p;
		}
		throw new ParseException("A label " + label + " não corresponde a nenhum tipo de ProbabilidadeSimbolica.", 0);	
	}
	
	/**
	 * Retorna a probabilidade simbólica de acordo com o ordinal
	 * passado por parâmetro
	 * @param ordinal
	 * @return probabilidade simbólica correspondente ao ordinal
	 * @throws ParseException
	 */
	public static ProbabilidadeSimbolica parse(int ordinal) throws ParseException {
		for (ProbabilidadeSimbolica p : ProbabilidadeSimbolica.values()) {
			if (p.ordinal() == ordinal)
				return p;
		}
		throw new ParseException("O ordinal " + ordinal + " não corresponde a nenhum tipo de ProbabilidadeSimbolica.", 0);
	}
}
